
Rajinder Singh
Deep Learning Researcher
TL;DR: CrewAI वर्कफ़्लो अक्सर CAPTCHA के सामने आते हैं; CapSolver के साथ एकीकरण अनुमति देता है कि स्वचालित स्क्रिप्ट CAPTCHA को दक्षता से हल करें।

CrewAI के साथ कार्यक्रमों के स्वचालन के दौरान, जैसे वेब स्क्रैपिंग या ब्राउज़िंग, CAPTCHAs आपके वर्कफ़्लो को आसानी से ब्लॉक कर सकते हैं। ये चुनौतियां सुरक्षित वेबसाइटों तक पहुंचने पर आम होती हैं और यहां तक कि अच्छी तरह से डिज़ाइन की गई स्वचालित स्क्रिप्ट को भी रोक सकती हैं।
CapSolver एक विश्वसनीय तरीका प्रदान करता है जिससे CAPTCHAs का निपटारा किया जा सकता है, जिससे CrewAI कार्यों को हस्तक्षेप किए बिना जारी रख सकता है। CapSolver के साथ एकीकरण के माध्यम से, आप स्वचालित ब्राउज़िंग और डेटा संग्रह को बहुत आसानी से बना सकते हैं जबकि वेबसाइट के सुरक्षा उपायों के साथ सुसंगत रहते हैं।
CrewAI एक स्वचालित एआई एजेंट प्रणाली बनाने के लिए एक संक्षिप्त और तेज़ पायथन फ्रेमवर्क है। इसे पूरी तरह से शुरू से बनाया गया है—लैंगचेन या अन्य एजेंट फ्रेमवर्क के बिना—CrewAI उच्च-स्तरीय उपयोग में आसानी और बारीकी से नियंत्रित करने के क्षमता प्रदान करता है।
CrewAI दो पूरक परंपराओं पर काम करता है:
| घटक | विवरण |
|---|---|
| क्रू | स्वायत्त रूप से सहयोग करने वाले मल्टी-एजेंट टीम, विशेषित भूमिकाओं के साथ लचीले समस्या समाधान के लिए सक्षम |
| फ़्लो | जटिल व्यावसायिक तर्क के लिए बहुत बारीक नियंत्रण के साथ घटना-आधारित वर्कफ़्लो |
CapSolver विविध CAPTCHA चुनौतियों को पार करने के लिए एआई-आधारित समाधान प्रदान करता है। विभिन्न CAPTCHA प्रकारों के समर्थन के साथ, बिजली की तेज़ उत्तर प्रतिक्रिया समय के साथ, CapSolver स्वचालित प्रक्रियाओं में बिना किसी बाधा के एकीकृत हो सकता है।
जब आप CrewAI एजेंट बनाते हैं जो वेबसाइटों से बातचीत करते हैं—जैसे डेटा संग्रह, स्वचालित परीक्षण या सामग्री संग्रह—तो CAPTCHA चुनौतियां एक महत्वपूर्ण बाधा बन जाती हैं। यहां एकीकरण के महत्व के कारण हैं:
पहले, आवश्यक पैकेज स्थापित करें:
pip install crewai
pip install 'crewai[tools]'
pip install requests
CrewAI आपको ऐसे कस्टम टूल बनाने की अनुमति देता है जिनका एजेंट अपने कार्य पूरा करने के लिए उपयोग कर सकता है। यहां एक CAPTCHA चुनौती का निपटारा करने के लिए CapSolver टूल बनाने का तरीका है:
import requests
import time
from crewai.tools import BaseTool
from typing import Type
from pydantic import BaseModel, Field
CAPSOLVER_API_KEY = "YOUR_CAPSOLVER_API_KEY"
class CaptchaSolverInput(BaseModel):
"""CaptchaSolver टूल के लिए इनपुट स्कीमा।"""
website_url: str = Field(..., description="CAPTCHA वाले वेबसाइट का URL")
website_key: str = Field(..., description="CAPTCHA के साइट की चाबी")
captcha_type: str = Field(default="ReCaptchaV2TaskProxyLess", description="हल करने वाले CAPTCHA के प्रकार")
class CaptchaSolverTool(BaseTool):
name: str = "captcha_solver"
description: str = "CapSolver API के उपयोग से CAPTCHA चुनौतियां हल करें। reCAPTCHA v2, v3, Turnstile आदि का समर्थन करता है।"
args_schema: Type[BaseModel] = CaptchaSolverInput
def _run(self, website_url: str, website_key: str, captcha_type: str = "ReCaptchaV2TaskProxyLess") -> str:
# कार्य बनाएं
create_task_url = "https://api.capsolver.com/createTask"
task_payload = {
"clientKey": CAPSOLVER_API_KEY,
"task": {
"type": captcha_type,
"websiteURL": website_url,
"websiteKey": website_key
}
}
response = requests.post(create_task_url, json=task_payload)
result = response.json()
if result.get("errorId") != 0:
return f"कार्य बनाने में त्रुटि: {result.get('errorDescription')}"
task_id = result.get("taskId")
# परिणाम के लिए पूछताछ
get_result_url = "https://api.capsolver.com/getTaskResult"
for _ in range(60): # अधिकतम 60 प्रयास
time.sleep(2)
result_payload = {
"clientKey": CAPSOLVER_API_KEY,
"taskId": task_id
}
response = requests.post(get_result_url, json=result_payload)
result = response.json()
if result.get("status") == "ready":
solution = result.get("solution", {})
return solution.get("gRecaptchaResponse") or solution.get("token")
elif result.get("status") == "failed":
return f"कार्य विफल: {result.get('errorDescription')}"
return "CAPTCHA समाधान के लिए अवधि समाप्त हो गई"
import requests
import time
from crewai.tools import BaseTool
from typing import Type
from pydantic import BaseModel, Field
CAPSOLVER_API_KEY = "YOUR_CAPSOLVER_API_KEY"
class ReCaptchaV2Input(BaseModel):
"""reCAPTCHA v2 सॉल्वर के लिए इनपुट स्कीमा।"""
website_url: str = Field(..., description="reCAPTCHA v2 वाले वेबसाइट का URL")
website_key: str = Field(..., description="reCAPTCHA के साइट की चाबी")
class ReCaptchaV2Tool(BaseTool):
name: str = "recaptcha_v2_solver"
description: str = "CapSolver के उपयोग से reCAPTCHA v2 चुनौतियां हल करें"
args_schema: Type[BaseModel] = ReCaptchaV2Input
def _run(self, website_url: str, website_key: str) -> str:
payload = {
"clientKey": CAPSOLVER_API_KEY,
"task": {
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": website_url,
"websiteKey": website_key
}
}
return self._solve_captcha(payload)
def _solve_captcha(self, payload: dict) -> str:
# कार्य बनाएं
response = requests.post("https://api.capsolver.com/createTask", json=payload)
result = response.json()
if result.get("errorId") != 0:
return f"त्रुटि: {result.get('errorDescription')}"
task_id = result.get("taskId")
# परिणाम के लिए पूछताछ
for attempt in range(60):
time.sleep(2)
result = requests.post(
"https://api.capsolver.com/getTaskResult",
json={"clientKey": CAPSOLVER_API_KEY, "taskId": task_id}
).json()
if result.get("status") == "ready":
return result["solution"]["gRecaptchaResponse"]
if result.get("status") == "failed":
return f"विफल: {result.get('errorDescription')}"
return "समाधान के लिए अवधि समाप्त हो गई"
import requests
import time
from crewai.tools import BaseTool
from typing import Type
from pydantic import BaseModel, Field
CAPSOLVER_API_KEY = "YOUR_CAPSOLVER_API_KEY"
class ReCaptchaV3Input(BaseModel):
"""reCAPTCHA v3 सॉल्वर के लिए इनपुट स्कीमा।"""
website_url: str = Field(..., description="reCAPTCHA v3 वाले वेबसाइट का URL")
website_key: str = Field(..., description="reCAPTCHA के साइट की चाबी")
page_action: str = Field(default="submit", description="reCAPTCHA v3 के लिए कार्य पैरामीटर")
class ReCaptchaV3Tool(BaseTool):
name: str = "recaptcha_v3_solver"
description: str = "स्कोर-आधारित सत्यापन के साथ reCAPTCHA v3 चुनौतियां हल करें"
args_schema: Type[BaseModel] = ReCaptchaV3Input
def _run(
self,
website_url: str,
website_key: str,
page_action: str = "submit"
) -> str:
payload = {
"clientKey": CAPSOLVER_API_KEY,
"task": {
"type": "ReCaptchaV3TaskProxyLess",
"websiteURL": website_url,
"websiteKey": website_key,
"pageAction": page_action
}
}
# कार्य बनाएं
response = requests.post("https://api.capsolver.com/createTask", json=payload)
result = response.json()
if result.get("errorId") != 0:
return f"त्रुटि: {result.get('errorDescription')}"
task_id = result.get("taskId")
# परिणाम के लिए पूछताछ
for attempt in range(60):
time.sleep(2)
result = requests.post(
"https://api.capsolver.com/getTaskResult",
json={"clientKey": CAPSOLVER_API_KEY, "taskId": task_id}
).json()
if result.get("status") == "ready":
return result["solution"]["gRecaptchaResponse"]
if result.get("status") == "failed":
return f"विफल: {result.get('errorDescription')}"
return "समाधान के लिए अवधि समाप्त हो गई"
import requests
import time
from crewai.tools import BaseTool
from typing import Type
from pydantic import BaseModel, Field
CAPSOLVER_API_KEY = "YOUR_CAPSOLVER_API_KEY"
class TurnstileInput(BaseModel):
"""Turnstile सॉल्वर के लिए इनपुट स्कीमा।"""
website_url: str = Field(..., description="Turnstile वाले वेबसाइट का URL")
website_key: str = Field(..., description="Turnstile विजेट के साइट की चाबी")
class TurnstileTool(BaseTool):
name: str = "turnstile_solver"
description: str = "Cloudflare Turnstile चुनौतियां हल करें"
args_schema: Type[BaseModel] = TurnstileInput
def _run(self, website_url: str, website_key: str) -> str:
payload = {
"clientKey": CAPSOLVER_API_KEY,
"task": {
"type": "AntiTurnstileTaskProxyLess",
"websiteURL": website_url,
"websiteKey": website_key
}
}
# कार्य बनाएं
response = requests.post("https://api.capsolver.com/createTask", json=payload)
result = response.json()
if result.get("errorId") != 0:
return f"त्रुटि: {result.get('errorDescription')}"
task_id = result.get("taskId")
# परिणाम के लिए पूछताछ
for attempt in range(60):
time.sleep(2)
result = requests.post(
"https://api.capsolver.com/getTaskResult",
json={"clientKey": CAPSOLVER_API_KEY, "taskId": task_id}
).json()
if result.get("status") == "ready":
return result["solution"]["token"]
if result.get("status") == "failed":
return f"विफल: {result.get('errorDescription')}"
return "समाधान के लिए अवधि समाप्त हो गई"
import requests
import time
from crewai.tools import BaseTool
from typing import Type
from pydantic import BaseModel, Field
CAPSOLVER_API_KEY = "YOUR_CAPSOLVER_API_KEY"
class CloudflareChallengeInput(BaseModel):
"""Cloudflare चुनौती सॉल्वर के लिए इनपुट स्कीमा।"""
website_url: str = Field(..., description="सुरक्षित पृष्ठ का URL")
proxy: str = Field(..., description="प्रॉक्सी के रूप में: http://user:pass@ip:port")
class CloudflareChallengeTool(BaseTool):
name: str = "cloudflare_challenge_solver"
description: str = "Cloudflare 5-सेकंड चुनौती पृष्ठ हल करें"
args_schema: Type[BaseModel] = CloudflareChallengeInput
def _run(self, website_url: str, proxy: str) -> dict:
payload = {
"clientKey": CAPSOLVER_API_KEY,
"task": {
"type": "AntiCloudflareTask",
"websiteURL": website_url,
"proxy": proxy
}
}
# कार्य बनाएं
response = requests.post("https://api.capsolver.com/createTask", json=payload)
result = response.json()
if result.get("errorId") != 0:
return f"त्रुटि: {result.get('errorDescription')}"
task_id = result.get("taskId")
# परिणाम के लिए पूछताछ
for attempt in range(60):
time.sleep(3)
result = requests.post(
"https://api.capsolver.com/getTaskResult",
json={"clientKey": CAPSOLVER_API_KEY, "taskId": task_id}
).json()
if result.get("status") == "ready":
return {
"cookies": result["solution"]["cookies"],
"user_agent": result["solution"]["userAgent"]
}
if result.get("status") == "failed":
return f"विफल: {result.get('errorDescription')}"
return "समाधान के लिए अवधि समाप्त हो गई"
प्रत्येक CAPTCHA प्रकार के लिए अलग-अलग जमा विधि आवश्यक होती है:
reCAPTCHA के लिए, छिपे टेक्स्ट एरिया में टोकन डालें और फॉर्म जमा करें:
from selenium import webdriver
from selenium.webdriver.common.by import By
def submit_recaptcha_token(driver, token: str):
"""reCAPTCHA टोकन डालें और फॉर्म जमा करें"""
# छिपे टेक्स्ट एरिया दृश्यमान बनाएं और टोकन सेट करें
recaptcha_response = driver.find_element(By.ID, "g-recaptcha-response")
driver.execute_script("arguments[0].style.display = 'block';", recaptcha_response)
recaptcha_response.clear()
recaptcha_response.send_keys(token)
# फॉर्म जमा करें
form = driver.find_element(By.TAG_NAME, "form")
form.submit()
Turnstile के लिए, छिपे इनपुट में टोकन सेट करें:
def submit_turnstile_token(driver, token: str):
"""Turnstile टोकन डालें और जमा करें"""
# छिपे इनपुट में टोकन सेट करें
turnstile_input = driver.find_element(By.NAME, "cf-turnstile-response")
driver.execute_script("arguments[0].value = arguments[1];", turnstile_input, token)
# फॉर्म जमा करें
form = driver.find_element(By.TAG_NAME, "form")
form.submit()
Cloudflare चुनौती (5 सेकंड) के लिए, CapSolver टोकन के बजाय कुकीज़ और यूजर-एजेंट लौटाता है। अपने अनुरोधों में इन्हें उपयोग करें:
# उदाहरण: कुकीज़ और यूजर-एजेंट का उपयोग अनुरोध में करें
headers = {
"User-Agent": "user_agent_value",
"Cookie": "cookies_value"
}
response = requests.get("https://example.com", headers=headers)
import requests
def access_cloudflare_protected_page(url: str, cf_solution: dict):
"""
बाध्य करें बाध्य पृष्ठ के लिए Cloudflare चुनौती समाधान का उपयोग करें।
cf_solution में CapSolver से 'cookies' और 'user_agent' शामिल हैं।
"""
# समाधान के साथ सेशन बनाएं
session = requests.Session()
# CapSolver समाधान से कुकीज सेट करें
for cookie in cf_solution["cookies"]:
session.cookies.set(cookie["name"], cookie["value"])
# समाधान के लिए उपयोग किया गया उपयोक्ता एजेंट सेट करें
headers = {
"User-Agent": cf_solution["user_agent"]
}
# अब आप सुरक्षित पृष्ठ तक पहुंच सकते हैं
response = session.get(url, headers=headers)
return response.text
### पूर्ण डेटा निकालने का उदाहरण
```python
import requests
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
CAPSOLVER_API_KEY = "YOUR_CAPSOLVER_API_KEY"
def solve_recaptcha(website_url: str, website_key: str) -> str:
"""CapSolver से reCAPTCHA टोकन प्राप्त करें"""
payload = {
"clientKey": CAPSOLVER_API_KEY,
"task": {
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": website_url,
"websiteKey": website_key
}
}
response = requests.post("https://api.capsolver.com/createTask", json=payload)
result = response.json()
if result.get("errorId") != 0:
raise Exception(f"त्रुटि: {result.get('errorDescription')}")
task_id = result.get("taskId")
for _ in range(60):
time.sleep(2)
result = requests.post(
"https://api.capsolver.com/getTaskResult",
json={"clientKey": CAPSOLVER_API_KEY, "taskId": task_id}
).json()
if result.get("status") == "ready":
return result["solution"]["gRecaptchaResponse"]
if result.get("status") == "failed":
raise Exception(f"असफल: {result.get('errorDescription')}")
raise Exception("समय सीमा समाप्त हो गई")
def scrape_with_recaptcha(target_url: str, site_key: str):
"""पूरा प्रवाह: reCAPTCHA हल करें → जमा करें → डेटा निकालें"""
driver = webdriver.Chrome()
driver.get(target_url)
try:
# 1. CAPTCHA हल करें
token = solve_recaptcha(target_url, site_key)
# 2. टोकन डालें
recaptcha_response = driver.find_element(By.ID, "g-recaptcha-response")
driver.execute_script("arguments[0].style.display = 'block';", recaptcha_response)
recaptcha_response.clear()
recaptcha_response.send_keys(token)
# 3. फॉर्म जमा करें
driver.find_element(By.TAG_NAME, "form").submit()
# 4. डेटा निकालें
time.sleep(3) # पृष्ठ लोड होने के लिए प्रतीक्षा करें
return driver.page_source
finally:
driver.quit()
CrewAI में ब्राउज़र ऑटोमेशन के अनुप्रयोगों के लिए, आप CapSolver ब्राउज़र एक्सटेंशन का उपयोग कर सकते हैं:
एक्सटेंशन डाउनलोड करें: capsolver.com से CapSolver एक्सटेंशन प्राप्त करें
Selenium/Playwright के साथ विन्यास करें: एक्सटेंशन को अपने ब्राउज़र ऑटोमेशन टूल में लोड करें
ऑटो-हल मोड: एक्सटेंशन ऑटोमैटिक रूप से CAPTCHA को पहचान और हल करता है
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# CapSolver एक्सटेंशन के साथ Chrome विन्यास करें
chrome_options = Options()
chrome_options.add_extension("path/to/capsolver-extension.crx")
driver = webdriver.Chrome(options=chrome_options)
# एक्सटेंशन ऑटोमैटिक रूप से CAPTCHA को हल करेगा
driver.get("https://example.com/protected-page")
def solve_with_retry(self, payload: dict, max_retries: int = 3) -> str:
for attempt in range(max_retries):
try:
result = self._solve_captcha(payload)
if result:
return result
except Exception as e:
if attempt == max_retries - 1:
raise
time.sleep(2 ** attempt) # एक्स्पोनेंशियल बैकऑफ
def check_balance() -> float:
response = requests.post(
"https://api.capsolver.com/getBalance",
json={"clientKey": CAPSOLVER_API_KEY}
)
return response.json().get("balance", 0)
एक ही पृष्ठ पर बार-बार पहुंच के लिए, उपयुक्त स्थिति में CAPTCHA टोकन कैश करें:
from functools import lru_cache
from datetime import datetime, timedelta
captcha_cache = {}
def get_cached_token(website_url: str, website_key: str) -> str:
cache_key = f"{website_url}:{website_key}"
if cache_key in captcha_cache:
token, timestamp = captcha_cache[cache_key]
if datetime.now() - timestamp < timedelta(minutes=2):
return token
# नए CAPTCHA को हल करें
new_token = solve_captcha(website_url, website_key)
captcha_cache[cache_key] = (new_token, datetime.now())
return new_token
CrewAI के साथ CapSolver के एकीकरण से वेब-आधारित कार्यों के लिए स्वायत्त एआई एजेंट की पूरी क्षमता खोली जा सकती है। CrewAI के शक्तिशाली बहु-एजेंट व्यवस्थापन के साथ CapSolver के उद्योग-नेता CAPTCHA हल करने के क्षमता के संयोजन से, विकासकर्ता अधिकतम चुनौतियों वाले वेब सुरक्षा तंत्रों के साथ विश्वसनीय ऑटोमेशन समाधान बना सकते हैं।
क्या आप डेटा निकालने के पाइपलाइन, स्वचालित परीक्षण ढांचे, या बुद्धिमान वेब एजेंट बना रहे हैं, CrewAI + CapSolver संयोजन उत्पादन वातावरण के लिए आवश्यक विश्वसनीयता और विस्तार क्षमता प्रदान करता है।
शुरू करने के लिए तैयार हैं? CapSolver के लिए पंजीकरण करें और हर भुगतान पर CREWAI बोनस कोड के साथ 6% बोनस प्राप्त करें!

CrewAI एक हल्का, तेज़ पायथन फ्रेमवर्क है जो स्वायत्त एआई एजेंट प्रणालियों के निर्माण के लिए है। यह विकासकर्ताओं को जटिल कार्य करने के लिए AI एजेंट के दल बनाने की अनुमति देता है, जो स्वायत्त निर्णय लेने और सटीक प्रवाह नियंत्रण के साथ काम करते हैं।
CapSolver CrewAI के साथ कस्टम टूल के माध्यम से एकीकृत है। आप एक टूल बनाते हैं जो CapSolver API को घेरता है, जिससे आपके AI एजेंट को वेब ऑपरेशन के दौरान वे जब CAPTCHA चुनौतियां मिलती हैं, तो वे ऑटोमैटिक रूप से CAPTCHA हल कर सकते हैं।
CapSolver विस्तृत रूप से विभिन्न प्रकार के CAPTCHA के समर्थन करता है, जैसे कि reCAPTCHA v2, reCAPTCHA v3, Cloudflare Turnstile, Cloudflare Challenge, AWS WAF, GeeTest आदि।
CapSolver विभिन्न प्रकार और मात्रा के CAPTCHA हल करने के लिए प्रतिस्पर्धी कीमत प्रदान करता है। capsolver.com पर वर्तमान मूल्य विवरण के लिए जाएं। CREWAI कोड के साथ अपने पहले भुगतान पर 6% बोनस प्राप्त करें।
हां! CapSolver किसी भी पायथन फ्रेमवर्क के साथ REST API प्रदान करता है, जैसे कि Scrapy, Selenium, Playwright आदि।
हां, CrewAI मुक्त है और MIT लाइसेंस के तहत खुला स्रोत है। फ्रेमवर्क मुक्त है, हालांकि आपको LLM API कॉल (जैसे OpenAI) और CapSolver जैसे CAPTCHA हल सेवाओं के लिए लागत हो सकती है।
CAPTCHA site key आमतौर पर पृष्ठ के HTML स्रोत में पाया जा सकता है। नीचे दिए गए तत्वों के लिए खोजें:
data-sitekey विशेषता या grecaptcha.render() कॉलdata-sitekey विशेषताdata-sitekey विशेषताRust में वेब स्क्रैपिंग के स्केलेबल आर्किटेक्चर सीखें, reqwest, scraper, असिंक्रोनस स्क्रैपिंग, हेडलेस ब्राउज़र स्क्रैपिंग, प्रॉक्सी रोटेशन, और संगत CAPTCHA का निपटारा।

CapSolver के साथ RoxyBrowser के एकीकरण करें ताकि ब्राउज़र के कार्यों को स्वचालित किया जा सके और reCAPTCHA, Turnstile और अन्य CAPTCHAs को बायपास किया जा सके।
